package com.laolang.pluto.common.annotation;

import com.laolang.pluto.common.consts.BusinessType;
import com.laolang.pluto.common.consts.OperatorChannel;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 操作日志注解
 *
 * @author laolang
 * @date 2021-08-05 06:22
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface Log {

    /**
     * 模块名称
     */
    String moduleName() default "";

    /**
     * 操作类型
     */
    BusinessType businessType();

    /**
     * 操作渠道
     */
    OperatorChannel channel() default OperatorChannel.OTHER;

    /**
     * 是否保存请求参数
     */
    boolean saveRequestParam() default true;

}
